package com.ruoyi.training.domain;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;
import com.ruoyi.common.core.annotation.Excel;
import com.ruoyi.common.core.web.domain.BaseEntity;

/**
 * 班级签到记录（学员的实际签到信息）对象 checkin_record
 * 
 * @author WorrilessGo
 * @date 2025-09-24
 */
public class CheckinRecord extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 签到记录ID（主键） */
    private String checkinRecordId;

    /** 班级签到表ID（外键，关联class_checkin表） */
    @Excel(name = "班级签到表ID", readConverterExp = "外=键，关联class_checkin表")
    private String classCheckinId;

    /** 签到状态（0-未签到，1-已签到，2-迟到，3-早退） */
    @Excel(name = "签到状态", readConverterExp = "0=-未签到，1-已签到，2-迟到，3-早退")
    private Long checkinStatus;

    /**  匹配到的学员id（外键，关联class_checkin表） */
    @Excel(name = "匹配到的学员id", readConverterExp = "外键，关联student表")
    private String studentId;

    /** 学员姓名 */
    @Excel(name = "学员姓名")
    private String studentName;

    /** 证件编号 */
    @Excel(name = "证件编号")
    private String idCardNo;

    /** 电话 */
    @Excel(name = "电话")
    private String phoneNumber;

    /** 实际签到时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "实际签到时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date actualCheckinTime;

    /** 签到备注 */
    @Excel(name = "签到备注")
    private String checkinRemark;

    /** 匹配状态（0-未匹配，1-完全匹配，2-部分匹配）*/
    @Excel(name = "签到状态", readConverterExp = "0-未匹配，1-完全匹配，2-部分匹配")
    private String matchStatus;

    public void setCheckinRecordId(String checkinRecordId) 
    {
        this.checkinRecordId = checkinRecordId;
    }

    public String getCheckinRecordId() 
    {
        return checkinRecordId;
    }

    public void setClassCheckinId(String classCheckinId) 
    {
        this.classCheckinId = classCheckinId;
    }

    public String getClassCheckinId() 
    {
        return classCheckinId;
    }

    public void setCheckinStatus(Long checkinStatus) 
    {
        this.checkinStatus = checkinStatus;
    }

    public Long getCheckinStatus() 
    {
        return checkinStatus;
    }

    public void setStudentName(String studentName) 
    {
        this.studentName = studentName;
    }

    public String getStudentName() 
    {
        return studentName;
    }

    public void setIdCardNo(String idCardNo) 
    {
        this.idCardNo = idCardNo;
    }

    public String getIdCardNo() 
    {
        return idCardNo;
    }

    public void setPhoneNumber(String phoneNumber) 
    {
        this.phoneNumber = phoneNumber;
    }

    public String getPhoneNumber() 
    {
        return phoneNumber;
    }

    public void setActualCheckinTime(Date actualCheckinTime) 
    {
        this.actualCheckinTime = actualCheckinTime;
    }

    public Date getActualCheckinTime() 
    {
        return actualCheckinTime;
    }

    public void setCheckinRemark(String checkinRemark) 
    {
        this.checkinRemark = checkinRemark;
    }

    public String getCheckinRemark() 
    {
        return checkinRemark;
    }

    public String getStudentId() {
        return studentId;
    }

    public void setStudentId(String studentId) {
        this.studentId = studentId;
    }

    public String getMatchStatus() {
        return matchStatus;
    }

    public void setMatchStatus(String matchStatus) {
        this.matchStatus = matchStatus;
    }

    @Override
    public String toString() {
        return "CheckinRecord{" +
                "checkinRecordId='" + checkinRecordId + '\'' +
                ", classCheckinId='" + classCheckinId + '\'' +
                ", checkinStatus=" + checkinStatus +
                ", studentId='" + studentId + '\'' +
                ", studentName='" + studentName + '\'' +
                ", idCardNo='" + idCardNo + '\'' +
                ", phoneNumber='" + phoneNumber + '\'' +
                ", actualCheckinTime=" + actualCheckinTime +
                ", checkinRemark='" + checkinRemark + '\'' +
                ", matchStatus='" + matchStatus + '\'' +
                '}';
    }
}
